package algorithm.easy;

import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;

/**
 * @BelongsProject: LeetCode
 * @BelongsPackage: algorithm.easy
 * @Author: 江岸
 * @CreateTime: 2021-07-24 23:16
 * @Description: 给你一个字符串 time ，格式为 hh:mm（小时：分钟），其中某几位数字被隐藏（用 ? 表示）。
 * 有效的时间为 00:00 到 23:59 之间的所有时间，包括 00:00 和 23:59 。
 * <p>
 * 替换 time 中隐藏的数字，返回你可以得到的最晚有效时间。
 * <p>
 *  
 * <p>
 * 示例 1：
 * <p>
 * 输入：time = "2?:?0"
 * 输出："23:50"
 * 解释：以数字 '2' 开头的最晚一小时是 23 ，以 '0' 结尾的最晚一分钟是 50 。
 * 示例 2：
 * <p>
 * 输入：time = "0?:3?"
 * 输出："09:39"
 * 示例 3：
 * <p>
 * 输入：time = "1?:22"
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/latest-time-by-replacing-hidden-digits
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class MaximumTime1736 {
    public String maximumTime(String time) {
        String res = "";
        if (time.charAt(0) == '?') {
            if (time.charAt(1)!='?' && Integer.valueOf(time.charAt(1) + "") > 3) {
                res = "1";
            } else {
                res = "2";
            }
        } else {
            res = res + time.charAt(0);
        }
        if (time.charAt(1) == '?') {
            if (res.charAt(0) == '2') {
                res = "23";
            } else {
                res = res + "9";
            }
        } else {
            res = res + time.charAt(1);
        }
        res = res + ":";
        if (time.charAt(3) == '?') {
            res = res + "5";
        } else {
            res = res + time.charAt(3);
        }
        if (time.charAt(4) == '?') {
            res = res + "9";
        } else {
            res = res + time.charAt(4);
        }
        return res;
    }

    public static void main(String[] args) {
        String s = new MaximumTime1736().maximumTime("??:3?");
        System.out.println(s);
    }
}
